Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

285
Vistas
Solicitar al usuario que vuelva a ingresar el año de nacimiento hasta el año de nacimiento < año actual

Tengo el problema de cómo seguir mostrando un aviso hasta que el usuario ingrese su año de nacimiento siempre es más pequeño que el año actual. Aquí está mi código. Intento usar loop pero ahora lucho. Espero que alguien me pueda ayudar, se lo agradezco.

 <body> <p id= "age"></p> <button onclick=" notify()">Try it</button> <script> function notify(){ let age = prompt("Your birth year"); const year = new Date().getFullYear(); do { document.getElementById("age").innerHTML = age + " is a good year"; } while (age < year && age != null); } </script> </body>
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Podrías usar la recursividad:

 <body> <p id="age"></p> <button onclick="notify()">Try it</button> <script> age_p = document.getElementById("age"); function notify() { let age = prompt("Your birth yeat"); const year = new Date().getFullYear(); if (parseInt(age) < year) { age_p.innerHTML = age + " is a good year"; } else { notify(); } } </script> </body>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Dos cosas a comprobar:

  1. la prueba de "si la edad es mayor o igual al año actual continúa en bucle" parece estar en el camino equivocado. Pruebe >= en lugar de < como operador de comparación edad/año.

  2. Asegúrese de prompt nuevamente si el año ingresado es inaceptable.

Muestre el fragmento para ver una versión funcional:

 function notify(){ let age; const year = new Date().getFullYear(); do { age = prompt("Your birth year"); } while (age >= year && age != null); document.getElementById("age").innerHTML = age + " is a good year"; }
 <p id= "age"></p> <button onclick=" notify()">Try it</button>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esta solución sugerida modifica considerablemente su código para tratar de mejorar tanto la UX como la capacidad de mantenimiento.

  • Un cuadro de diálogo modal prompt es fácil de configurar para nosotros, pero tiende a ser complicado para el usuario. (Un elemento de input , en este caso uno numérico, suele ser la mejor manera de obtener la entrada del usuario).
  • Los controladores de eventos en línea violan el SoC y son menos flexibles que los detectores de eventos adecuados .

(Aquí también hay cambios de estilo, pero estos son solo preferencias personales y pueden ignorarse con seguridad).

(Consulte los comentarios en el código para obtener más aclaraciones).

 // Gets current year, and identifies some DOM elements const year = new Date().getFullYear(), yearInput = document.getElementById("year-input"), outputParagraph = document.getElementById("output-paragraph"), submitButton = document.getElementById("submit-button"); // Calls notify whenever button is clicked submitButton.addEventListener("click", notify); // Alternative listener setup you could try -- makes button unnecessary // yearInput.addEventListener("change", notify); // Chooses and shows message (by comparing inputted year to current year) function notify(){ const userYear = yearInput.value; let message; if(userYear === "") { message = ""; } else if(userYear > year){ message = "Greetings, time traveller"; } else { message = "You are fit for your age"; } outputParagraph.textContent = message; }
 input{ width: 8ch; }
 <label> Your birth year <input id="year-input" type="number" /> </label> <button id="submit-button">SUBMIT</button> <p id="output-paragraph"></p>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda